<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>CSSOM MediaQueryList Test: Properties and Functions</title>
        <link rel="author" title="Joe Balancio" href="mailto:jlbalancio@gmail.com" />
        <link rel="help" href="http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface" />
        <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" />
        <meta name="flags" content="dom" />
        <meta name="assert" content="All properties exist and are readonly. All functions exist and are instances of Function" />
        <script src="/resources/testharness.js" type="text/javascript" />
        <script src="/resources/testharnessreport.js" type="text/javascript" />
    </head>
    <body>
        <noscript>Test not run - javascript required.</noscript>
        <div id="log" />
        <script type="text/javascript"><![CDATA[
            var mediaQueryList;
            test(
                function(){
                    assert_inherits(window, "matchMedia");
                    mediaQueryList = window.matchMedia('foo');
                }, 'window_inherits_matchmedia', {
                  assert: ['window.matchMedia is inherited. If this fails, the rest of the test fails.']
                }
            );
            /*
               MediaQueryList Functions
             */
            test(
                function(){
                    assert_inherits(mediaQueryList, "addListener");
                    assert_inherits(mediaQueryList, "removeListener");
                }, 'mediaquerylist_inherited_functions', {
                  assert: ['MediaQueryList functions are inherited']
                }
            );

            test(
                function(){
                    assert_true(mediaQueryList.addListener instanceof Function);
                    assert_true(mediaQueryList.removeListener instanceof Function);
                }, 'mediaquerylist_functions', {
                  assert: ['MediaQueryList functions are instances of Function']
                }
            );

            /*
               MediaQueryList  Properties
             */
            test(
                function() {
                    assert_own_property(mediaQueryList, 'media');
                    assert_own_property(mediaQueryList, 'matches');
                }, 'mediaquerylist_properties', {
                  assert: ['MediaQueryList properties are owned by window']
                }
            );
            test(
                function() {
                    assert_readonly(mediaQueryList, 'media');
                    assert_readonly(mediaQueryList, 'matches');
                }, 'mediaquerylist_properties_readonly', {
                    assert: ['MediaQueryList properties are readonly']
                }
            );
                ]]>
        </script>
    </body>
</html>
